Crate memory_stats
source ·Expand description
§Memory Stats
A cross-platform memory profiler for Rust, supporting Windows, Linux, and MacOS. This crate provides two metrics:
- “Physical” Memory, which corresponds to the Resident Set Size on Linux and MacOS and the Working Set on Windows.
- “Virtual” Memory, which corresponds to the Virtual Size on Linux and MacOS and the Pagefile Usage on Windows.
§Usage
Add memory-stats
as a dependency to your Cargo.toml
:
[dependencies]
memory-stats = "1.0.0"
§Optional Features
serde
: Enables serialization and deserialization of the MemoryStats
struct.
§Example
Here’s an example that prints out the current memory usage:
use memory_stats::memory_stats;
if let Some(usage) = memory_stats() {
println!("Current physical memory usage: {}", usage.physical_mem);
println!("Current virtual memory usage: {}", usage.virtual_mem);
} else {
println!("Couldn't get the current memory usage :(");
}
§Caveats
Getting accurate memory usage on Linux is fairly expensive and not always possible. This crate always attempts to use the statistics from
/proc/self/smaps
if avaliable. However, since support for /proc/self/smaps
might not be compiled in on all kernels, this crate will also use the faster but less accurate statistics from
/proc/self/statm
as a fallback.
If speed is needed over accuracy, the always_use_statm
feature can be enabled to always use the /proc/self/statm
statistics.
Structs§
- Statistics on the memory used by the current process.
Functions§
- Returns a snapshot of the the memory used by the current process.